package com.baofu.paycore.service.facade.model.pay;

import com.baofu.paycore.service.facade.model.PayBaseDTO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.NotBlank;

import javax.validation.Valid;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.List;

/**
 * 消费服务参数类 DTO
 *
 * User: LZQ  Date: 2014/11/20 ProjectName: paycore Version: 5.0.0
 * User: kwl  Date: 2016/05/06 ProjectName: paycore Version: 5.0.0
 */
@Getter
@Setter
@ToString(callSuper = true)
public class PayDTO extends PayBaseDTO implements Serializable {

    private static final long serialVersionUID = 8917602907906310609L;

    /** 付款方ID，传递付款方客户帐号(contractNo) */
    @NotBlank(message = "付款方客户帐号不能为空")
    private String payerNo;

    /** 收款方ID，传递收款方客户帐号(contractNo) */
    @NotBlank(message = "收款方客户帐号不能为空")
    private String payeeNo;


    /** 付款方资金账户号 */
    @NotBlank(message = "付款方资金账户号不能为空")
    private String payerAccNo;

    /**
     * 事件号
     */
    private String eventNo;

    /**
     * 支付回调通知地址
     */
    private String returnUrl;

    /**
     * 付款方资金明细列表
     */
    @NotNull(message = "付款方资金明细不为空")
    @Valid
    private List<FundDetailInfoDTO> payerFundDetails;

    /**
     * 收款方资金明细
     */
    @NotNull(message = "收款方资金明细不为空")
    @Valid
    private FundDetailInfoDTO payeeFundDetail;

}
